<?php
date_default_timezone_set('America/Argentina/Buenos_Aires');
use Doctrine\DBAL\Types\DateType;
class Persona extends CI_Controller {
		
		function Persona () {
			parent::__construct();
			
			$this->load->helper('url');
			$this->load->helper('form');
			

		}
		
		function index () {
			$data['title']='Persona';
			$data['heading']='Agregar Persona';
			
			$data['result']= $this->getAllOrderBy('apellido');
			$persona = new Entities\Persona;
			$tipodoc = new Entities\TipoDocumento;
			$persona->setTipodocumento($tipodoc);
			$data['registro']=$persona;
			$data['action']='agregar';
			$data['submit']='Agregar';
			$this -> load -> view('persona_view',$data);
		}
		
		public function getAll()
		{
		    $personas = $this->doctrine->em->getRepository('Entities\Persona')->findAll();
			return $personas;
		}
		
		public function getAllOrderBy($orden)
		{
		    //
		    $personas = $this->doctrine->em->createQuery('SELECT p FROM Entities\Persona p ORDER BY p.'. $orden .' ASC')->getResult(); 
			return $personas;
		}
		
		public function remove ($id)
		{
			$persona = $this->doctrine->em->find('Entities\Persona',$id);
			$this->doctrine->em->remove($persona);
			$this->doctrine->em->flush();
			redirect('persona');
		}
		
		public function agregar()
		{
			$persona = new Entities\Persona;
    		$persona->setApellido($_POST["tx_apellido"]);
			$persona->setNombre($_POST["tx_nombre"]);
    		$persona->setNumerodocumento($_POST["tx_numerodoc"]);
    		$persona->setMail($_POST["tx_mail"]);
    		$persona->setCelular($_POST["tx_celular"]);
    		$persona->setTelefono($_POST["tx_telefono"]);
    		$tipodoc=$this->doctrine->em->find('Entities\TipoDocumento',$_POST["tx_tipodoc"]);
    		$persona->setTipodocumento($tipodoc);
    		
			
    		$this->doctrine->em->persist($persona);
    		$this->doctrine->em->flush();
    		redirect('persona');
 
		}
		
		public function editar ($id)
		{
			$persona = $this->doctrine->em->find('Entities\Persona',$id);
			$data['title']='Persona';
			$data['heading']='Actualizar Persona';
			
			$data['result']= $this->getAllOrderBy('apellido');
			$data['registro']=$persona;
			$data['action']='actualizar';
			$data['submit']='Actualizar';
			$this -> load -> view('persona_view',$data);
		}
		
		public function actualizar($id)
		{
			$persona = $this->doctrine->em->find('Entities\Persona',$id);
			$persona->setApellido($_POST["tx_apellido"]);
			$persona->setNombre($_POST["tx_nombre"]);
    		$persona->setNumerodocumento($_POST["tx_numerodoc"]);
    		$persona->setMail($_POST["tx_mail"]);
    		$persona->setCelular($_POST["tx_celular"]);
    		$persona->setTelefono($_POST["tx_telefono"]);
    		$tipodoc=$this->doctrine->em->find('Entities\TipoDocumento',$_POST["tx_tipodoc"]);
    		$persona->setTipodocumento($tipodoc);
    		
    		
    		$this->doctrine->em->persist($persona);
    		$this->doctrine->em->flush();
    		redirect('persona');
		}
}
?>